# ————————————————————  2.5.1	运算符  ————————————————————
print(10 + True)      # 整型与布尔类型的值相加，布尔类型的值会转换为1
print(10 / 2.0)       # 整型与浮点型的值相除，整型的值会转换为浮点型10.0
print(10 - (3+5j))    # 整型与复数类型的值相减，整型的值会转换为复数类型10+0j
print(10 / 2)

result1 = 2 + 3 or None       # 左侧操作数是一个表达式
print(result1)
result2 = 0 or 3 + 5           # 右侧操作数是一个表达式
print(result2)

result1 = 3 - 3 and 5        # 左侧操作数的布尔值为False
print(result1)
result2 = 5 and 3 - 3        # 右侧操作数的布尔值为False
print(result2)
result3 = 3 - 8 and 5        # 左侧和右侧操作数的布尔值都为True
print(result3)
result4 = 0 and 0.0          # 左侧和右侧操作数的布尔值都为False
print(result4)

result1 = not 10 - 2
print(result1)
result2 = not False
print(result2)

words = 'abcdefg'            # 定义一个变量，保存字符串类型的数据
print('f' in words)          # 检测'f'是否在字符串中
print('c' not in words)     # 检测'c'是否在字符串中

a = b = 10
print(a is b)                  # 检测a和b的内存地址是否相同
a_address = id(a)             # 获取a的内存地址
print(a_address)
b_address = id(b)             # 获取b的内存地址
print(b_address)


# ————————————————————  2.5.2	运算符优先级  ————————————————————
result = 1 + 2 * 3
print(result)

result = (1 + 2) * 3
print(result)

result = 1 + 2 - 3
print(result)